#线性回归

import numpy as np
from sklearn.linear_model import LinearRegression #在线性模型中导入线性回归

print(" ")
print("【以下是Y = a + bx的线性回归模型】")
X=np.array([1,2,3,4,5,6,7,8,9,10,11]).reshape(-1,1)#x从一维转为二维
Y=np.array([3,4,5,7,9,11,13,15,17,19,21])#Y:一维
#实例化对象
lin_reg= LinearRegression()
#调用fit方法 训练模型找规律
lin_reg.fit(X,Y)
#找到规律 截距与斜率
print("截距a的值是：%s " % (lin_reg.intercept_))
print("斜率b的值是：%s " % (lin_reg.coef_))
#预测x=12对应的Y
X_new=np.array([[12]]) #创建数组
print("当 X = 12的时候，Y值为: %s." % (lin_reg.predict(X_new)))


#多元回归
print(" ")
print("【以下是Y = a + b·x1 + c·x2 + d·x3的多元回归模型】")
X2 = np.array([3,1,2,1,2]).reshape(-1,1)#x从一维转为二维
X1 = np.array([5,1,2,2,3]).reshape(-1,1)#x从一维转为二维
X3 = np.array([-2,2,2,3,4]).reshape(-1,1)#x从一维转为二维
X=np.c_[X2,X1,X3]
Y= np.array([3,4,12,4,13])
#实例化对象
lin_reg= LinearRegression()
#调用fit方法 训练模型找规律
lin_reg.fit(X,Y)
#找到规律 截距与斜率
print("截距a的值是：%s " % (lin_reg.intercept_))
print("斜率b,c,d的值分别是：%s " % (lin_reg.coef_))
#预测x=12 15 17对应的Y
X_new=np.array([[12,15,17]]) #创建数组
print("当 X1 = 12，X2 = 15，X3 = 17的时候，Y值为: %s." % (lin_reg.predict(X_new)))